package com.authine.cloudpivot.ext.entity.goods;

import com.authine.mvp.app.launcher.domain.AttachmentFormat;
import com.authine.mvp.app.launcher.domain.SelectorFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.List;

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class GoodsPurchaseEntity {

    /**
     * 序号
     */
    private String id;
    /**
     * 创建人
     */
    private String createdBy;
    /**
     * 创建人部门
     */
    private String createdDept;
    /**
     * 创建时间
     */
    private String createdTime;
    /**
     * 拥有者
     */
    private String owner;
    /**
     * 拥有者部门
     */
    private String ownerDept;
    /**
     * 修改人
     */
    private String modifiedBy;
    /**
     * 修改时间
     */
    private String modifiedTime;
    /**
     * 单据号
     */
    private String document;
    /**
     * 单据状态
     */
    private String status;
    /**
     * 类型
     */
    private String type;
    /**
     * 客户ID
     */
    private List<SelectorFormat> customer_id;
    /**
     * 供应商ID
     */
    private List<SelectorFormat> vendor_id;
    /**
     * 报价商品ID
     */
    private String quotation_goods_id;
    /**
     * 目录
     */
    private String catalog;
    /**
     * 品牌
     */
    private String brand;
    /**
     * 商品名称
     */
    private String name;
    /**
     * 型号
     */
    private String model;
    /**
     * 规格
     */
    private String spec;
    /**
     * 单位
     */
    private String unit;
    /**
     * 包装单位
     */
    private String package_unit;
    /**
     * 包装数量
     */
    private BigDecimal package_num;
    /**
     * 客户SKU
     */
    private String customer_sku;
    /**
     * 客户条形码
     */
    private String customer_bar_code;
    /**
     * 供应商SKU
     */
    private String vendor_sku;
    /**
     * 供应商条形码
     */
    private String vendor_bar_code;
    /**
     * 金税编码
     */
    private String golden_tax;
    /**
     * 美国电目录录编码
     */
    private String unspsc;
    /**
     * 货期-交货(天)
     */
    private BigDecimal delivery;
    /**
     * 询包数量
     */
    private BigDecimal num;
    /**
     * 税前单价
     */
    private BigDecimal pretax_price;
    /**
     * 税后单价
     */
    private BigDecimal price;
    /**
     * 税后合计
     */
    private BigDecimal total;
    /**
     * 税率
     */
    private BigDecimal tax_rate;
    /**
     * 税额
     */
    private BigDecimal tax_payable;
    /**
     * 税前运费
     */
    private BigDecimal pretax_freight;
    /**
     * 运费
     */
    private BigDecimal freight;
    /**
     * 运费税率
     */
    private BigDecimal tax_rate_freight;
    /**
     * 运费税额
     */
    private BigDecimal tax_payable_freight;
    /**
     * 税前共计
     */
    private BigDecimal pretax_amount;
    /**
     * 税后共计
     */
    private BigDecimal amount;
    /**
     * 过期时间
     */
    private String expire;
    /**
     * 描述
     */
    private String description;
    /**
     * 已买数量
     */
    private BigDecimal bought;
    /**
     * 上下架
     */
    private Boolean saled;
    /**
     * 启禁用
     */
    private Boolean enabled;
    /**
     * 是否删除
     */
    private Boolean del;
    /**
     * 图片集
     */
    private List<AttachmentFormat> images;
    /**
     * 平均价格
     */
    private BigDecimal average_price;
    /**
     * 定标理由
     */
    private String picketage_reason;
    /**
     * 审批状态
     */
    private String if_approval;
    /**
     * 更换供应商理由
     */
    private String reason;
    /**
     * 原供应商ID
     */
    private List<SelectorFormat> old_vendor_id;
    /**
     * 任务ID
     */
    private String task_id;
    /**
     * 是否是vmi商品
     */
    private Boolean vmi_goods;
    /**
     * 安全库存数
     */
    private BigDecimal safety_stock_num;
    /**
     * 补充澄清
     */
    private String clarify_tips;
    /**
     * 客户组织名称
     */
    private String customer_name;
    /**
     * 供应商组织名称
     */
    private String vendor_name;
    /**
     * 最大订货量
     */
    private BigDecimal maximum;
    /**
     * 最小起订量
     */
    private BigDecimal min_order;
    /**
     * 含税单价
     */
    private BigDecimal price_tax;
    /**
     * 包装
     */
    private String packages;
    /**
     * 询价单id
     */
    private String inquiry_id;
    /**
     * 询价标题
     */
    private String inquiry_name;
    /**
     * 需求部门
     */
    private List<SelectorFormat> demand_dept_id;
    /**
     * 区域
     */
    private String area;
    /**
     * 公司
     */
    private String company;
    /**
     * 仓库
     */
    private String warehouse;
    /**
     * 税前商品合计
     */
    private BigDecimal pretax_total;
    /**
     * 共计
     */
    private BigDecimal grand_total;
    /**
     * 定标时间
     */
    private String picketage_time;
    /**
     * 需求人&询价人
     */
    private String needAndAsk;
    /**
     * 成本中心编码
     */
    private String cost_center_name;
    /**
     * PR
     */
    private String client_purchase_request;
    /**
     * 询价商品id
     */
    private String inquiry_goods_id;
    /**
     * 整单询价策略
     */
    private Boolean quote_total_strategy;
    /**
     * 冗余字段可采购
     */
    private Boolean kcg;
    /**
     * 目录
     */
    private String catalog_id;
    /**
     * 品牌
     */
    private String brand_id;
    /**
     * 成本中心
     */
    private String cost_center_id;

    public String getPackage() {
        return packages;
    }

    public void setPackage(String packages) {
        this.packages = packages;
    }


    @Builder
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Accessors(chain = true)
    public static class GoodsFullEntity {

        /**
         * 序列号
         */
        private String id;
        /**
         * 创建人
         */
        private String createdBy;
        /**
         * 创建人部门
         */
        private String createdDept;
        /**
         * 创建时间
         */
        private String createdTime;
        /**
         * 拥有者
         */
        private String owner;
        /**
         * 拥有者部门
         */
        private String ownerDept;
        /**
         * 修改人
         */
        private String modifiedBy;
        /**
         * 修改时间
         */
        private String modifiedTime;
        /**
         * 单据号
         */
        private String document;
        /**
         * 单据状态
         */
        private String status;
        /**
         * 供应商ID
         */
        private List<SelectorFormat> vendor_id;
        /**
         * 目录
         */
        private String catalog;
        /**
         * 单位
         */
        private String unit;
        /**
         * 包装单位
         */
        private String package_unit;
        /**
         * 包装数量
         */
        private BigDecimal package_num;
        /**
         * 税前单价
         */
        private BigDecimal pretax_price;
        /**
         * 税后单价
         */
        private BigDecimal price;
        /**
         * 税率
         */
        private BigDecimal tax_rate;
        /**
         * sku
         */
        private String sku;
        /**
         * 库存
         */
        private BigDecimal stock;
        /**
         * 保修期
         */
        private String warranty;
        /**
         * 交货期（天）
         */
        private String delivery;
        /**
         * 最小起订量
         */
        private BigDecimal min_order;
        /**
         * 过期时间
         */
        private String expiry;
        /**
         * 长
         */
        private BigDecimal length;
        /**
         * 宽
         */
        private BigDecimal width;
        /**
         * 高
         */
        private BigDecimal height;
        /**
         * 重量
         */
        private BigDecimal weight;
        /**
         * 运费模板ID
         */
        private String freight_template_id;
        /**
         * 上下架
         */
        private Boolean saled;
        /**
         * 启禁用
         */
        private Boolean enabled;
        /**
         * 操作人
         */
        private String operator;
        /**
         * 货期要求
         */
        private String delivery_claim;
        /**
         * 供应商组织名称
         */
        private String org_fullname;
        /**
         * 外部来源ID
         */
        private String client_id;
        /**
         * 外部来源商品ID
         */
        private String client_goods_id;
        /**
         * 是否删除
         */
        private Boolean del;
        /**
         * version
         */
        private String version;
        /**
         * 审批状态
         */
        private String review_status;
        /**
         * 类型
         */
        private String type;
        /**
         * 商城上下架
         */
        private Boolean mall_sales;
        /**
         * 商品类型
         */
        private String mall_featured;
        /**
         * 安全库存
         */
        private String safe_stock;
        /**
         * 现货货期
         */
        private String stock_delivery;
        /**
         * 是否为核心品牌
         */
        private Boolean core;
        /**
         * 审批意见
         */
        private String review_content;
        /**
         * 调整后税后单价
         */
        private BigDecimal adjust_price;
        /**
         * 调整后税前单价
         */
        private BigDecimal adjust_pretax_price;
        /**
         * 调整比例
         */
        private BigDecimal adjust_ratio;
        /**
         * 关联原商品的id
         */
        private String relation_goods_id;
        /**
         * 客户组织id
         */
        private List<SelectorFormat> organization_id;
        /**
         * 客户组织名称
         */
        private String organization_name;
        /**
         * 平台调整价格比例
         */
        private BigDecimal platform_adjust_ratio;
        /**
         * 分类
         */
        private String category;
        /**
         * 品牌
         */
        private String brand;
        /**
         * 商品名称
         */
        private String name;
        /**
         * 型号
         */
        private String model;
        /**
         * 规格
         */
        private String spec;
        /**
         * 条形码
         */
        private String bar_code;
        /**
         * 金税编码
         */
        private String golden_tax;
        /**
         * 美国电子目录编码
         */
        private String unspsc;
        /**
         * old_sepc
         */
        private String old_sepc;
        /**
         * 产地
         */
        private String place;
        /**
         * 图片集
         */
        private List<AttachmentFormat> images;
        /**
         * 商品描述
         */
        private String description;
        /**
         * 参数信息
         */
        private String technical;
        /**
         * 包装清单
         */
        private String packaging;
        /**
         * 备注
         */
        private String memo;
        /**
         * 发货地
         */
        private String delivery_place;
        /**
         * 含税单价
         */
        private BigDecimal all_priced;
        /**
         * 价格有效期
         */
        private String period_alidity;
        /**
         * 目录id
         */
        private String catalog_id;
        /**
         * 品牌
         */
        private String brand_id;
        /**
         * 单位id
         */
        private String unit_id;
        /**
         * 包装单位
         */
        private String package_unit_id;
        /**
         * 税率
         */
        private String tax_rate_id;


    }
}
